In a client-server network, a client sends a request to a server. In turn, the server processes the request and may or may not send a response back to the client. In an attempt to ensure quality of service, a server cluster having multiple servers may be used to process the request. Furthermore, one or more servers in the server cluster may be able to process the request. That is, multiple servers may have a replicated service that performs the same actions in response to the same request. Thus, from the point of view of the client sending the request, any appropriately configured server in the server cluster may receive and process the request and produce the same results.
A management application may be installed on the server cluster to permit a system administrator to maintain the cluster. This management application may include the necessary functionality for ensuring that requests are processed by the correct server in a timely manner. Typically, a management application also includes functionality for monitoring the health of each server, updating the servers as necessary, detecting failure in the server cluster, and performing load balancing. Furthermore, the management application may include functionality for performing load balancing among the servers in the cluster.
Typically, the load balancing functionality provided by the management application is uniform for server clusters having the management application. That is, the load balancing logic used to decide which server should process the request is the same. The only configuration option available to the system administrator managing the server cluster is a configuration file that the system administrator may change to reflect the configuration of the server cluster.